#include<bits/stdc++.h>
using namespace std;
typedef long long ll;


void solve(){
    int n,m,x;
    cin>>n>>m>>x;
    set<int> st;
    for(int i=0;i<x;i++){
    	int t;
    	cin>>t;
    	st.insert(t);
    }
    vector<vector<int>> adj(n+1);
    for(int i=0;i<m;i++){
    	int u,v;
    	cin>>u>>v;
    	adj[u].push_back(v);
    	adj[v].push_back(u);
    }

    queue<int> q;
    vector<int> res={1};
    vector<bool> used(n+1,false);
    q.push(1);
    used[1]=true;

    while(!q.empty()){
    	int u=q.front();
    	q.pop();
    	for(int i=0;i<adj[u].size();i++){
    		if(used[adj[u][i]])continue;
    		if(st.count(adj[u][i]))continue;
    		q.push(adj[u][i]);
    		used[adj[u][i]]=true;
    		res.push_back(adj[u][i]);
    	}
    }
    for(int x:res){
    	cout<<x<<' ';
    }
}

int main(){
    ios::sync_with_stdio(0);
    cin.tie(0),cout.tie(0);
    int t=1;
    // cin>>t;
    while(t--){
        solve();
    }
    return 0;
}